package cn.com.nes.mybatis.agent.project.mapper;

import cn.com.nes.mybatis.agent.project.entity.ProjectServiceUserAuth;
import cn.com.nes.site.controller.project.vo.GetMyTeamMemberVO;
import cn.com.nes.site.controller.project.vo.GetMyTeamProjectVO;
import cn.com.nes.site.entity.bo.project.ProjectServiceUserAuthPageBO;
import cn.com.nes.site.service.project.dto.MyTeamWorkAreaDTO;
import cn.com.nes.site.service.project.dto.ProjectServiceUserDTO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
* @author yishuai
* @description 针对表【t_project_service_user_auth(项目服务人员权限)】的数据库操作Mapper
* @createDate 2024-07-08 15:31:08
* @Entity cn.com.nes.mybatis.agent.project.entity.ProjectServiceUserAuth
*/
public interface ProjectServiceUserAuthMapper extends BaseMapper<ProjectServiceUserAuth> {

    List<ProjectServiceUserDTO> getProjectServiceUserAuthPage(@Param("page") Page<ProjectServiceUserDTO> page, @Param("bo") ProjectServiceUserAuthPageBO bo);

    List<Map<String, String>> getMyTeamProjectList(@Param("vo") GetMyTeamProjectVO vo);

    List<Map<String, Object>> getMyTeamMemberList(@Param("vo") GetMyTeamMemberVO vo, @Param("retainCaptain") Boolean retainCaptain);

    List<MyTeamWorkAreaDTO> getTeamMemberWorkArea(@Param("teamMemberIdList") List<Long> teamMemberIdList, @Param("projectUuid") String projectUuid);

    Long getUserIdByProjectId(@Param("projectId") Long projectId, @Param("easyRepairUserId") Long easyRepairUserId, @Param("isCaptain") Boolean isCaptain);

    List<ProjectServiceUserDTO> getProjectServiceUserList(@Param("projectUuid") String projectUuid, @Param("departmentIdSet") Set<String> departmentIdSet);
}




